how to design a url shortening service